/*
 * Copyright @ 苏州瑞云信息技术有限公司 All rights reserved.
 */
package cn.com.recloud.bbs.service;

import cn.com.recloud.bbs.dto.CampaignAnalysisDTO;
import cn.com.recloud.bbs.entity.bbs_campaign;
import cn.com.recloud.bbs.vo.CampaignAppVO;
import cn.com.recloud.bbs.vo.CampaignVO;
import cn.com.recloud.one.spring.service.BaseService;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * @author kim dong
 * @date 2020-06-08
 */
public interface CampaignService extends BaseService<bbs_campaign> {

    /**
     * 保存活动
     * @param entity
     * @return
     */
    String saveCampaign(bbs_campaign entity);

    /**
     * 发布活动
     * @param flag
     * @param entity
     * @return
     */
    String releaseCampaign(String flag, bbs_campaign entity);

    /**
     * 获取活动的显示vo
     * @param id
     * @return
     */
    CampaignVO getCampaignVO(String id);

    /**
     * 发布活动
     * @param id
     * @return
     */
    boolean activateRelease(String id);

    /**
     * 取消发布活动
     * @param id
     * @return
     */
    boolean deactivateRelease(String id);

    /**
     * 获取活动编号
     * @return
     */
    String getCampaignCode();

    /**
     * 批量发布活动
     * @param idList
     * @param type
     * @return
     */
    boolean releaseBatch(List<String> idList ,String type);

    /**
     * 获取活动的统计信息（报名，和分享）
     * @param campaign
     * @return
     */
    Map listCampaignAnalysisTwo(CampaignAnalysisDTO campaign);

    /**
     * 导出活动统计信息
     * @param campaign
     * @param response
     */
    void exportCampaignAnalysis(CampaignAnalysisDTO campaign, HttpServletResponse response);

    Map findAllShowCampaign(String time,String code);

    List<CampaignAppVO> findAppCampaignList(String name,Integer pageIndex,Integer pageSize);

    // 更新启动页图片
    void updateStById(bbs_campaign campaign);
}
